#include <stdio.h>
#include <string.h>

void extractNumbers(char *str, int *arr, int *size) {
    int count = 0;
    int num = 0;
    int isNum = 0; // 标记当前是否在处理一个数字
    for (int i = 0; i < strlen(str); i++) {
        if (str[i] >= '0' && str[i] <= '9') {
            num = num * 10 + (str[i] - '0'); // 将字符转换为整数并累加到num
            isNum = 1; // 设置标记为1，表示当前在处理一个数字
        } else {
            if (isNum) { // 如果前一个字符是数字，则将num添加到数组中
                arr[count] = num;
                count++;
                num = 0; // 重置num
                isNum = 0; // 重置标记
            }
        }
    }
    if (isNum) { // 如果字符串以数字结尾，则将最后一个数字添加到数组中
        arr[count] = num;
        count++;
    }
    *size = count;
}

int main() {
    char str[] = "Hello123World456";
    int arr[100];
    int size;

    extractNumbers(str, arr, &size);

    printf("Extracted numbers: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
